#include"SimpleDateClassRealization.h"

void Test1()
{
	// 默认构造分为：无参构造、全缺省构造、默认生成构造
	// 全缺省构造
	Date d1(2025,7, 6);
	d1.Print();
	cout << endl;
	// 全缺省构造无参调用
	Date d2;
	d2.Print();
	cout << endl;
	// 赋值
	d2 = d1;
	d2.Print();
	cout << endl;
	// 拷贝构造-日期类通过编译器默认生成的拷贝构造进行浅拷贝即可
	Date d3 = d1;
	d3.Print();
}
void Test2()
{
	// 运算符：+=、+、-=、-（日期相减，日期减天数）、++、--、>、<、>=、<=、==、!=、>>、<<
	Date d1(1, 1, 1);
	cout << d1 << endl; // 1/1/1
	Date d2 = d1 + 1;
	d2.Print(); // 1/1/2
	int sub = d2 - d1;
	cout << sub << endl; // 1
	d2 -= 1;
	cout << d2 << endl; // 1/1/1
	d2 += 31;
	cout << d2 << endl; // 1/2/1
	d2 = d2 - 1;
	cout << d2 << endl; // 1/1/31
	Date tmp = ++d2;
	cout << tmp  << " " << d2 << endl; // 1/2/1 1/2/1
	tmp = d2++;
	cout << tmp  << " " << d2 << endl; // 1/2/1 1/2/2
	tmp = --d2;
	cout << tmp << " " << d2 << endl; // 1/2/1 1/2/1
	tmp = d2--;
	cout << tmp << " " << d2 << endl; // 1/2/1 1/1/31
	if (tmp > d2) cout << "tmp > d2" << endl; // tmp > d2
	if (d2 < tmp) cout << "d2 < tmp" << endl; // d2 < tmp
	if (tmp >= d2) cout << "tmp >= d2" << endl; // tmp >= d2
	if (d2 <= tmp) cout << "d2 <= tmp" << endl; // d2 <= tmp
	if (tmp != d2) cout << "tmp != d2" << endl; // tmp != d2
	if (!(tmp == d2)) cout << "!(tmp == d2)" << endl; // !(tmp == d2)
	cin >> tmp;
	cout << tmp << endl;
}
int main()
{
	cout << "Test1:" << endl;
	Test1();
	cout << endl;
	cout << "Test2:" << endl;
	Test2();
	cout << endl;
	return 0;
}